<template>
  <header class="header">
    <h1>todos</h1>
    <input v-model="ist" id="toggle-all" class="toggle-all" type="checkbox" />
    <label for="toggle-all"></label>
    <!-- 双向绑定数据 -->
    <!-- 绑定键盘事件add -->
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      v-model.trim="taskname"
      @keydown.enter="add"
    />
  </header>
</template>

<script>
export default {
  props: ["list"],
  data() {
    return {
      taskname: "",
    };
  },
  methods: {
    add() {
      //  点击时候判断用户是否输入
      if (this.taskname.length == 0) {
        return alert("添加任务不能为空");
      }
      // 触发app.vue自定义事件并且 把用户输入的数据传给app.vue
      this.$emit("add", this.taskname);
      //  添加完成后清空
      this.taskname = "";
    },
  },
  //  利用计算属性做全选反选功能
  computed: {
    ist: {
      set(val) {
        this.list.forEach((item) => (item.isDone = val));
      },
      get() {
        return this.list.every((item) => item.isDone);
      },
    },
  },
};
</script>
